﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using BusinessLayer.Interface;
using BusinessLayer.Facade;
using EntityLayer;
using System.Collections;
namespace PresentationLayer
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        private String msg, titulo;
        private clsIFacadeActualizarPreLegajoJudicial FacadePreLegajoListar;
        private clsIFacadeAsignacionAbogado FacadeAbogado;
        private IEnumerable<Object> listarPreLegajo = null;

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    ListarPreLegajos();
                }
            }
            catch (Exception)
            {
                throw;
            }
        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            Session["op"] = "I";
            Response.Redirect("wfrmPreLegajoJudicialActualizar.aspx",false);
        }

        protected void btnModificar_Click(object sender, EventArgs e)
        {
            if (!ObtenerDatos()) { return; }
            Session["op"] = "M";
          //  ~/WebForms/INICIO DE ACCIONES LEGALES/wfrmPreLegajoJudicialListar.aspx
            Response.Redirect("wfrmPreLegajoJudicialActualizar.aspx", true);
        }

        protected void btnEliminar_Click(object sender, EventArgs e)
        {
           lblPregunta.Text = "¿Desea Anular el Pre Legajo?";
            pcPregunta.ShowOnPageLoad = true;
        }

        protected void dgvPreLegajos_PageIndexChanged(object sender, EventArgs e)
        {
            ListarPreLegajos();
        }

        protected void dgvPreLegajos_AfterPerformCallback(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewAfterPerformCallbackEventArgs e)
        {
            ListarPreLegajos();
        }

        protected void dgvPreLegajos_HeaderFilterFillItems(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewHeaderFilterEventArgs e)
        {
            ListarPreLegajos();
        }

        #region Metodos
        private void ListarPreLegajos()
        {
            try
            {
                listarPreLegajo = new List<Object>();
                FacadeAbogado = new clsFacadeAsignarAbogado();
                var query = from p in FacadeAbogado.listarPreLegajoAbogado()
                     // where p.CO_estado=="01"
                      select p;

                 listarPreLegajo = query;
               
                if (listarPreLegajo == null || listarPreLegajo.Count() == 0) { return; }

                dgvPreLegajos.DataSource = listarPreLegajo;
                dgvPreLegajos.DataBind();
            }
            catch (Exception ex)
            {
                titulo = "ListarLegajos";
                err = true;
                MostrarComentario(ex.Message, titulo);
            }
        }
        private void MostrarComentario(String msg, String titulo = "Mensaje")
        {
            lblMensaje.Text = msg;
            pcMensaje.HeaderText = titulo;
            pcMensaje.ShowOnPageLoad = true;
        }
        private Boolean ObtenerDatos()
        {
            Boolean ok = true;
            msg = String.Empty;
            try
            {
                if (dgvPreLegajos.FocusedRowIndex == -1)
                {
                    MostrarComentario("Debe seleccionar un PreLegajo");
                    ok = false;
                }
                if (ok)
                {
                    String nroResol = String.Empty;
                    nroResol = dgvPreLegajos.GetRowValues(dgvPreLegajos.FocusedRowIndex, "NU_Prelegajo").ToString().Trim();
                    Session["nroResol"] = nroResol;
                }
            }
            catch (Exception ex)
            {
                ok = false;
                titulo = "ObtenerDatos";
                err = true;
                MostrarComentario(ex.Message, titulo);
            }
            return ok;
        }
        bool err = false;
        private void Anular()
        {
            Boolean ok = true;
            msg = String.Empty;
            try
            {
                
                if (dgvPreLegajos.VisibleRowCount == 0) { MostrarComentario("No existe legajo seleccionado para su anulación."); return; }
                if (dgvPreLegajos.FocusedRowIndex == -1) { MostrarComentario("Debe seleccionar un legajo a anular."); return; }
                int index = dgvPreLegajos.FocusedRowIndex;
                
                String codAnul = "Anulado";
                if (dgvPreLegajos.GetRowValues(index, "VR_estado").ToString() == codAnul) { MostrarComentario("El Legajo ya se encuentra Anulado."); return; }
                FacadePreLegajoListar = new clsFacadeActualizarPreLegajoJudicial();
                String NU_prelegajo = dgvPreLegajos.GetRowValues(index, "NU_Prelegajo").ToString();
                ok = FacadePreLegajoListar.Anular(NU_prelegajo);
                msg = (!ok) ? "Ocurrió un error al Anular el Prelegajo" : "Se Anuló el Prelegajo correctamente.";
                MostrarComentario(msg, "Anular");
                err = false;
                    
             
            }
            catch (Exception ex)
            {
                msg = (ex.InnerException != null) ? ex.InnerException.Message : ex.Message;
                MostrarComentario(msg, "Anular");
                err = true;
            }
        }
        #endregion

        protected void btnSalir_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Default.aspx", true);
        }

        protected void btnAceptar1_Click(object sender, EventArgs e)
        {
            Anular();
            
        }

        

        protected void btnAceptar_Click1(object sender, EventArgs e)
        {
            if (err == false)
            {
                ListarPreLegajos();
            }
        }




    }
}